1. Field of the Invention
The present invention relates generally to data transfer and, more particularly, to reading data stored in a memory.
2. Description of Related Art
Conventional network devices, such as routers, transfer packets through a network from a source to a destination. Typically, the network device receives packets from a number of different data streams and one or more memory subsystems on the network device store the packets while the packets are processed. As the network device begins reading the data from the memory for output to its intended destination, the network device typically buffers the data cells associated with a single packet before transmitting the entire packet.
As the number of data streams supported by the network device and the required line rates of these streams increase, buffering entire packets before transmitting the packets causes problems. For example, if buffer space for storing the cells of a packet runs out, packet corruption may occur.
In addition, in typical situations, the processing associated with the received data streams may be uneven. That is, the output processing for some streams may require data from the memory subsystem more often than other streams. Conventional network devices are unable to service a large number of data streams that access a memory system unevenly while maintaining the required line rates, which may result in packet underrun errors.
Therefore, there exists a need for systems and methods that provide memory read bandwidth for a large number of data streams and maintain the required line rates for these data streams.